Micron Document




V8 (moteur JavaScript)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
V8 est un moteur JavaScript open-source développé par le projet Chromium pour les navigateurs Web Google Chrome et Chromiumcite-ref-comic-3-0[3]. Le créateur du projet est Lars Bakcite-ref-4[4]. La première version du moteur V8 a été publiée en même temps que la première version de Chrome, le 2 septembre 2008. Il a également été utilisé dans Couchbase, MongoDB et Node.js côté serveur.

V8 compile directement le code JavaScript en code machine natif avant de l’exécuter, au lieu d'utiliser des techniques plus traditionnelles telles que l’interprétation du bytecode ou la compilation du programme complet en code machine et l’exécution à partir d’un système de fichiers. Le code compilé est en outre optimisé (et ré-optimisé) dynamiquement au moment de l'exécution, en fonction du profil d'exécution du code. Les techniques d'optimisation utilisées comprennent inlining, elision des propriétés d'exécution coûteuses, et la mise en cache. Le ramasse-miettes est un collecteur incrémental de générationcite-ref-5[5].

V8 peut compiler vers x86, ARM ou MIPS dans leurs éditions 32 bits et 64 bits ; de plus, il a été porté sur PowerPCcite-ref-6[6] et IBM S/390cite-ref-7[7]cite-ref-8[8] pour une utilisation sur des serveurscite-ref-9[9].

Contents


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Historique

L'assembleur V8 est basé sur l'assembleur Strongtalkcite-ref-10[10]. Le nom fait référence aux puissants moteurs V8 de voitures sportivescite-ref-11[11]. Le 7 décembre 2010, une nouvelle infrastructure de compilation appelée Crankshaft a été publiée, avec des améliorations sur la vitessecite-ref-12[12]. Depuis la version 41 de Chrome en 2015, le projet TurboFan a été ajouté pour permettre plus de vitesse, par exemple pour asm.jscite-ref-13[13].

En 2016, l'interpréteur Ignition a été ajouté à V8 dans le but de réduire la mémoire utilisée par les téléphones Android à mémoire réduite par rapport à TurboFan et Crankshaftcite-ref-14[14].

En 2017, V8 a livré un tout nouveau pipeline de compilateur, composé d'Ignition (l'interpréteur) et de TurboFan (le compilateur d'optimisation). À partir de la version V9 5.9, Full-codegen et Crankshaft ne sont plus utilisés dans V8 pour l'exécution de JavaScript, car l'équipe estime ne plus être en mesure de suivre le rythme des nouvelles fonctionnalités du langage JavaScript et des optimisations requises cite-ref-15[15].

Utilisation

V8 est destiné à être utilisé à la fois dans un navigateur et en tant que moteur autonome hautes performances pouvant être intégré à des projets indépendants. V8 est utilisé dans les logiciels suivants :

Google Chrome et tous les autres navigateurs Web à base de chrome, y compris Microsoft Edge, Brave, Opera et Vivaldi
• Base de données Couchbase
• Environnement d'exécution Node.jscite-ref-16[16]
Structure logicielle Electron, composant sous-jacent des éditeurs de texte Atom et Visual Studio Code
NativeScript, infrastructure open source pour la création d'applications mobiles véritablement natives avec JavaScriptcite-ref-17[17]
• MarkLogic Server, une base de données orientée document

Voir également

Blink - le moteur de navigateur utilisé conjointement avec V8 dans un navigateur

Références

cite-note-wikidata-e19b087eea73854757d86a770151693b4c5722e3-11. « Chrome Platform Status » (consulté le 29 juin 2023)
cite-note-wikidata-897668474adb7cb6c4abf87a4e26aa70849f2fae-22. « Discontinuing release blog posts », 17 juin 2022 (consulté le 19 juin 2023)
cite-note-comic-33. lenssen2008Lenssen, « Google on Google Chrome - comic book », Google Blogoscoped, Google, 1er septembre 2008 (consulté le 17 août 2010)
cite-note-44. minto2009Minto, « The genius behind Google’s web browser », Financial Times, 27 mars 2009 (consulté le 17 août 2010)
cite-note-55. « A game changer for interactive performance », Chromium Blog, Google (consulté le 1er mai 2012)
cite-note-66. 2019« Port of Google V8 javascript engine to PowerPC®. Contribute to ibmruntimes/v8ppc development by creating an account on GitHub », sur GitHub, 21 avril 2019
cite-note-77. 2019« Port of Google V8 JavaScript engine to z/OS. The Linux on Z port is maintained in the community: https://chromium.googlesource.com/v8/v8.git: ibmruntimes/v8z », sur GitHub, 2 avril 2019
cite-note-88. mhdawson2015mhdawson, « PPC support for Google V8 goes mainstream », 30 juin 2015
cite-note-99. « V8 Changelog v3.8.2 », Google (consulté le 23 octobre 2012)
cite-note-1010. « V8 JavaScript Engine: License » [archive du 22 juillet 2010], Google Code, Google (consulté le 17 août 2010)
cite-note-1111. « Celebrating 10 years of V8 · V8 », sur v8.dev (consulté le 21 avril 2021)
cite-note-1212. 2010« A New Crankshaft for V8 », Chromium Blog, Google, 7 décembre 2010 (consulté le 22 avril 2011)
cite-note-1313. 2015« Revving up JavaScript performance with TurboFan », 7 juillet 2015 (consulté le 5 mars 2016)
cite-note-1414. 2016« BlinkOn 6 Day 1 Talk 2: Ignition - an interpreter for V8 », 26 juin 2016 (consulté le 2 septembre 2016)
cite-note-1515. 2017« Launching Ignition and TurboFan », 16 mai 2017 (consulté le 13 juillet 2017)
cite-note-1616. o-dell2011jolie-o-dell2011Jolie O'Dell, « Why Everyone Is Talking About Node », Mashable, 10 mars 2011
cite-note-1717. « NativeScript Android Runtime Overview »

• Portail de Google
• Portail des logiciels libres
• Portail de la programmation informatique